The present invention relates generally to the field of Internet telephony, and more particularly to a client for initiating and managing multimedia Internet telephony sessions.
Internet telephony, which is also known as IP telephony, provides realtime delivery of voice and other data types between two or more parties across networks using Internet protocols. IP telephony relies on end-to-end transport of information rather than the connections and circuits of the traditional switched telephone system. Call set-up is performed in IP telephony directly between the parties, rather than between the parties and the network. All information related to the call, both the call data itself and signaling, is transported end-to-end across the Internet without setting up dedicated circuits and connections. Information is transported across the Internet in packets that are type and media independent, so separate voice, data, and signaling networks are unnecessary. Additionally, packets may be either unicast or multicast, which allows multiparty calls to be made easily.
IP telephony thus offers a number of advantages over traditional circuit switched system. There is a need for an improved system to enable callers to obtain the benefits that IP telephony offers.
The present invention provides a multimedia IP telephony client, which provides a method of and system for initiating and managing multimedia IP telephony sessions. The client of the present invention allows helper applications, such as WEB phone, chat, conferencing, and streaming video, to be integrated in a seamless way. The client of the present invention includes a user interface, an application interface, and a protocol stack. The application interface provides an interface between the protocol stack and the user interface and helper applications. The protocol stack packages messages received from the application interface and parses messages received from other parties or prospective parties. The application interface converts incoming messages to appropriate application programming interfaces (APIs) and sends incoming payloads to the appropriate helper application.
The system of the present invention initiates and manages IP telephony sessions between a calling party client and at least one called party client by displaying a call placement dialog on the user interface of the calling party client whenever a user wishes to initiate a session. The call placement dialog includes fields for designating the called party client and a medium for the session. The calling party transmits a session invitation message to the called party client. The session invitation identifies the calling party client and the designated medium. The called party client displays an invitation dialog on its user interface. The invitation dialog identifies the calling party client and the designated medium.
The invitation dialog includes user input controls for accepting the invitation, declining the invitation, and choosing other options. If the user of the called party client accepts the invitation, the called party client transmits an acceptance response to the calling party client. Upon acceptance of the invitation, a session in the designated medium is established between the calling party client and the called party client by launching the appropriate helper application for the designated medium at each calling party client and called party client.
If the user of the called party client selects the other options control of the invitation dialog, the called party client displays an other options dialog. The other options dialog includes user input controls for suggesting alternative media or an alternative time for the session. The other options dialog displays a list of alternative media available to called party client. If the called party client user selects the control for suggesting alternative media, the called party client transmits a response to the calling party client with the suggested alternative media for the session. The calling party client displays the suggested alternative media. If the calling party user selects a suggested alternative medium, a session is established in the selected suggested alternative medium.
If the called party client user enters an alternative time for the session into the other options dialog, the called party client transmits an invitation declined response back to the calling party client with a suggested alternative time for session. The calling party client displays a message that the invitation has been declined and that an alternative time for the session has been suggested.